package demo;

import java.util.ArrayList;

/**
 * @Description TODO
 * @Author Jowin
 * @Date 2023/12/11
 * @Version -
 */
public class DemoTest {
    public static void main(String[] args) {

        String sql = "select * from tb where a=1";
        String carNos = "粤A11111,粤A22222,,,,,粤A33333,,,,";
        System.out.println("carNos:" + carNos);
        System.out.println("sql原始:" + sql);
        sql = queryMultiCarNo(sql, carNos);
        System.out.println("sql拼接后:" + sql);
    }

    /**
     * 查询多个车牌，sql拼接
     *
     * @param sql    原始sql
     * @param carNos 车牌号集合格式：粤A11111,粤A22222,粤A33333
     * @return
     */
    public static String queryMultiCarNo(String sql, String carNos) {
        if (carNos == null || "".equals(carNos.trim())) { // 判空处理
            return sql;
        }
        String[] carNoArray = carNos.split(","); // 将车牌转换成数组
        System.out.println("车牌个数:" + carNoArray.length);
        if (carNoArray !=null && carNoArray.length > 0) {
            ArrayList<String> resultArr = new ArrayList<>();
            for (String carNo : carNoArray) {//去掉空车牌
                if (carNo != null && !"".equals(carNo))
                    resultArr.add(carNo);
            }
            if (resultArr != null && resultArr.size() > 0) {
                System.out.println("去空后的车牌个数:" + resultArr.size());
                sql += " and PAY_ACC_NO in (";
                for (int i = 0; i < resultArr.size(); i++) {
                    if (i < resultArr.size() - 1) {
                        sql += "'" + resultArr.get(i) + "',";
                    } else {
                        sql += "'" + resultArr.get(i) + "'";  //最后一个车牌不用加逗号","
                    }
                }
                sql += ") ";
            }
        }
        return sql;
    }
}
